package models

import (
	"encoding/xml"
	"time"
)

// PageData 包含页面基本信息
type PageData struct {
	Title       string `json:"title"`
	Description string `json:"description"`
	Keywords    string `json:"keywords"`
	Sites       []Site
}

// Site 表示站点信息
// 增加唯一ID字段
// 注意：Name 字段仍然用于兼容旧数据，后续操作全部以ID为主
// ID建议8位短ID
// Name=title
type Site struct {
	ID          string      `json:"id"`    // 站点唯一ID
	Name        string      `json:"title"` // 站点名称
	URL         string      `json:"url"`
	Description string      `json:"description"`
	Cover       interface{} `json:"cover"` // 可以是字符串或 false
	Blank       bool        `json:"blank"` // 是否在新标签页打开
	V6          bool        `json:"v6"`    // 是否仅支持 IPv6
}

// Announcement 表示公告信息
// 增加唯一ID字段
type Announcement struct {
	ID          string    `json:"id"`          // 公告唯一ID
	Content     string    `json:"content"`     // 公告内容
	Publisher   string    `json:"publisher"`   // 发布者名称
	PublishTime time.Time `json:"publishTime"` // 发布时间
	Importance  int       `json:"importance"`  // 重要性(1-3)
}

// SiteMapURL 表示sitemap中的URL条目
type SiteMapURL struct {
	Loc        string `xml:"loc"`
	LastMod    string `xml:"lastmod"`
	ChangeFreq string `xml:"changefreq"`
	Priority   string `xml:"priority"`
}

// SiteMap 表示整体sitemap结构
type SiteMap struct {
	XMLName xml.Name     `xml:"urlset"`
	XmlNS   string       `xml:"xmlns,attr"`
	URLs    []SiteMapURL `xml:"url"`
}

// MusicShare 表示音乐分享相关的数据模型
type MusicShare struct {
	ID        string `json:"id"`        // 分享ID
	Title     string `json:"title"`     // 音乐标题
	Artist    string `json:"artist"`    // 艺术家
	AlbumID   string `json:"albumId"`   // 专辑ID
	TrackID   string `json:"trackId"`   // 音轨ID
	Comment   string `json:"comment"`   // 分享评论
	ShareTime int64  `json:"shareTime"` // 分享创建时间
	ServerURL string `json:"serverUrl"` // Navidrome服务器URL
}

// Link 表示友链信息
type Link struct {
	ID      string `json:"id"`      // 友链唯一ID
	AddTime int64  `json:"addTime"` // 添加时间（Unix时间戳）
	URL     string `json:"url"`     // 友链URL
	Name    string `json:"name"`    // 友链名称
	Desc    string `json:"desc"`    // 友链介绍
	Avatar  string `json:"avatar"`  // 头像URL
}
